#ifndef __EE_GAMEENGINE_HPP
#define __EE_GAMEENGINE_HPP

#include <SFML/Graphics.hpp>
#include <GameStateBase.hpp>
#include <TextureManager.hpp>
#include <vector>

namespace EE
{
	class GameEngine
	{
		public:
			GameEngine();
			~GameEngine();
			void Start();
			void Stop();
			void AddState(GameStateBase *state);
			void StopState();
			sf::RenderWindow *window;
			static TextureManager textureManager;
		private:
			void PushState(GameStateBase *state);
			void PopState();
			void Run();
			bool isRunning;
			std::vector<GameStateBase *> states;
	};
}

#endif
